package thread;
class Counter{
    private int count;
    synchronized public void add(){
        count++;
    }
    public int getCount(){
        return count;
    }
    public synchronized static void func(){
        synchronized(Counter.class){

        }
    }
}
//java中不怕重锁
public class Demo18 {
    public static void main(String[] args) throws InterruptedException{
                Object locker=new Object();
                Counter counter=new Counter();
                Thread t1=new Thread(()->{
                    for (int i = 0; i <50000 ; i++) {
                       //synchronized (locker) {
                            counter.add();
                        //}
                    }
                });
                Thread t2=new Thread(()->{
                    for (int i = 0; i <50000 ; i++) {
                        synchronized(locker){
                            counter.add();
                        }
                    }
                });
                t1.start();
                t2.start();
                t1.join();
                t2.join();
        System.out.println("count="+counter.getCount());
    }
}
